/**
 * 
 */
package com.google.code.cisx.wfe.api;

/**
 * A Workflow transction implementation takes care of ACID properties.
 * 
 * @author <a href='mailto:rthakur@bravurasolutions.com'>Rahul Thakur</a>
 * @since 1.0
 * @version $Id$
 */
public interface WorkflowTransaction<R> {

    /**
     * Execute a Workflow transaction with a variable number of arguments.
     * 
     * @param <R>
     *            Type of Result Expected
     * @param args
     * @return result of Transaction processing.
     * @throws WorkflowTransactionException
     */
    public R execute(Object... args) throws WorkflowTransactionException;

}
